package com.me.study.event;

import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

/**
 * Spring 事件驱动: 注解实现 事件的监听
 *
 * @author ME
 * @date   2019/12/22
 */
@Component
public class AnnotationEventListener {

    /**
     * value 必须给值, 但可以不用是 ApplicationEvent的子类, 任意事件都 ok
     *
     * @param o 代表事件的类型
     */
    @EventListener(value = {ContextRefreshedEvent.class, HungerEvent.class}
    // confition的使用，若同一个事件进行区分同步异步 等等条件的可以使用此confition 支持spel表达式  非常强大
    /*,condition = "#event.isAsync == false"*/)
    public void handle(Object o) {
        System.out.println("【Spring】 Event(注解实现事件监听): 事件触发了, 下面该干啥干啥~~      当前事件是" + o);
    }

}
